/*
 * IPostgreSQLConnection.h
 *
 *  Created on: 05.06.2012
 *      Author: Caffeine
 */
#ifdef _COMPILE_WITH_DB_POSTGRES_
#ifndef IPOSTGRESQLCONNECTION_H_
#define IPOSTGRESQLCONNECTION_H_

#include "../IDBConnection.h"

#include <postgresql/libpq-fe.h>

namespace irr {
namespace db {
namespace postgresql {

/**
 * @class
 * Класс реализующий методы соединение к PostgreSQL базе данных
 */
class IPostgreSQLConnection: public irr::db::IDBConnection {
private:
	PGconn*connection;
public:
	/**
	 * Конструктор
	 */
	IPostgreSQLConnection();

	/**
	 * Конструктор
	 *
	 * @param param параметры соединения
	 */
	IPostgreSQLConnection(irr::core::stringc param);

	/**
	 * Диструктор. Если соединение всё ещё установленно, то закроет его
	 */
	virtual ~IPostgreSQLConnection();



	virtual IResult*exe(irr::core::stringc query);
	virtual void exeQuery(irr::core::stringc query);
	virtual bool open();
	virtual void close();
	virtual bool isConnected();
};

} /* namespace postgresql */
} /* namespace db */
} /* namespace irr */
#endif /* IPOSTGRESQLCONNECTION_H_ */

#endif
